/**
 * \file MainTestObjet.c
 * \author Catalin BLAJ
 * \author Vincent JACQUEMIN
 * \date 1er Novembre 2013
 *
 * Fichier source MainTestObjet.c pour le programme du Sudoku.
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>

#include "SGrille.h"
#include "SSymboles.h"

int main()
{
    unsigned char type = 3;

    /* Initialisation d'une case */
    SCase* maCase = SC_initialiser(type, 0);
	assert(maCase != NULL);

    /* Chargement de case */
    SC_chargement(maCase, "2;3");

	printf("La valeur de ma case est : %d\n", SC_getValeur(maCase));
	printf("L'état de ma case est : %d\n", SC_getEtat(maCase));

    SC_testament(maCase);


    /* Initialisation d'une unité */
    SUnite* unite = SU_initialiser(type);
	assert(unite != NULL);

    SU_testament(unite);


    /* Initialisation d'une grille */
    SGrille* grille = SG_initialiser(type);
	assert(grille != NULL);

    /* Initialisation d'une grille par chargement */
    const char* sauvegarde = "31;0|0;0|0;0|0;0|0;0|0;0|0;0|0;0|0;0|0;0|0;0|0;0|2;2|0;0|2;6|0;0|2;3|2;1|2;2|0;0|0;0|2;4|2;3|2;7|2;5|0;0|0;0|2;1|2;4|2;0|2;3|2;2|2;8|2;6|2;7|2;5|2;6|0;0|2;7|0;0|0;0|2;0|0;0|2;2|2;4|2;3|2;2|2;5|2;6|2;7|0;0|0;0|0;0|0;0|2;0|2;3|0;0|0;0|2;5|2;2|0;0|0;0|2;6|2;5|0;0|0;0|2;8|2;6|0;0|0;0|2;4|2;3|0;0|2;6|2;1|2;0|0;0|2;3|2;7|2;5|2;2|";
    SGrille* grilleChargement = SG_initialiserChargement(sauvegarde);
	assert(grilleChargement != NULL);

    /* Initialisation d'une grille par copie */
    SGrille* grilleCopie = SG_initialiserCopie(grilleChargement);
	assert(grilleCopie != NULL);

	SG_testament(grille);
    SG_testament(grilleChargement);
    SG_testament(grilleCopie);


	/* Initialisation d'un symbole */
    SSymboles* symboles = SS_initialiser("123456789");
	assert(symboles != NULL);

    SSymboles* symboles2 = SS_initialiserParType(3);
    assert(symboles2 != NULL);

    SS_testament(symboles);
    SS_testament(symboles2);

    return 0;
}
